如果你手上有一個C++專案,想要引入一個第三方JSON函式庫,你會怎麼做?
好問題,真是個好問題。
ISO C++ 2026 問卷裡面就有一題問道:「你怎麼管理C++函式庫?」
How do you manage your 1st/3rd party libraries?
https://isocpp.org/files/papers/CppDevSurvey-2026-summary.pdf
根據問券(選項可複選)有高達56%的人說:「我們把函式庫原始碼全部摻進來一起做撒尿牛丸,啊不是,是整包拉進來跟專案一起編譯啦!」
然後有 38% 的人說:「我們自己下載原始碼、自己編譯、編完了再用。」
接下來排名依序是:
4. 系統套件管理(apt, brew)
5. Git submodule
6. CMake FetchContent
C++ 套件管理器,竟然連前五名都排不上。

從其他程式語言過來的人,看到這個結果大概會非常意外跟驚訝。
路人問:「C++眾們,你們沒有套件管理器嗎? 像 pip? npm? cargo? 你們活在古代嗎?」
C++眾自己都想問:「都2026了,為什麼C++管理函式庫還是這麼麻煩?」
這現況其來有自:主要原因就是 C++ 破碎的生態系。
C++ 沒有所謂的「官方編譯器」,如果一個初學者問:「我想要學C++,要去哪裡下載編譯器呀?」
資深工程師聽到這個問題,大概要先咳嗽一聲,先問你用哪套作業系統,再給你不同的答案:Windows 的話就是 MSVC,macOS 的使用者的話則是 Apple Clang,Linux/FreeBSD 則是 GCC。
而且每個系統用的「原生工具鏈」都不同,有 MSBuild (Windows),Xcode (macOS),Makefile (Linux/Unix) ,再加上許多第三方的工具鍊/編譯器,讓人看的眼花撩亂,而且常常互不相容。
到最後,只有程式語言的語法是統一的,其他每樣東西都不一樣,這就是C++的現狀。
這個混亂的現狀,讓使用函式庫變得很複雜。因為每個平台引入函式庫的方式都有些微差異。
當然,混亂就是機會,有人會跳出來試圖要解決這個的惡夢。
有兩個套件管理器,已經在這個混亂的業界站穩了腳步,而且做的還不錯,第一套叫做 Conan,第二套叫做 vcpkg
Conan 的官方網站: https://conan.io/
Conan 是由美國加州公司 JFrog 開發,是市場上最早打入主流企業開發的C++套件管理器。
撰寫本文的當下,Conan (https://conan.io/center) 社群中心收錄了1948個套件,涵蓋常用的C++函式庫,社群非常活躍。
vcpkg 的官方網站: https://vcpkg.io/
另一方面,vcpkg 由軟體巨頭微軟主導開發的 C++ 套件管理器,起飛時間比 Conan 略晚了一點,但有強大的微軟背書,有後發先至之感。
vcpkg 套件搜尋入口 https://vcpkg.io/en/packages
撰文當下收錄有 2866 個套件。
根據同一份 ISO C++ 2026 問卷,21.8% 的回答者採用了vcpkg,Conan緊追在後有 17.5%。
目前兩者的解決方案都非常成熟,各自都有企業用戶,處於平起平坐,互相競爭的態勢。
明天,我就會開始介紹這兩套 C++ Package Manager。